
package edu.uoc.tdp.servidor.impl.informes;

import edu.uoc.tdp.common.EOlympicsException;
import edu.uoc.tdp.common.RemotInformesInterface;
import edu.uoc.tdp.bbdd.GestorDiscConnexio;
import edu.uoc.tdp.beans.proves.Prova;
import edu.uoc.tdp.servidor.bbdd.conexio.GestorUsuaris;
import edu.uoc.tdp.servidor.bbdd.informes.GestorInformes;
import java.io.Serializable;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Classe que implementa l'interfície RemotInformesInterface
 * Es definiran tots els mètodes que necessitem per fer servir a la
 * capa de presentació. Per accedir a BBDD sempre haurem de passar per 
 * la classe GestorXXX corresponent
 * @author Grup TDP 1X4J
 */
public class RemotInformesImpl extends UnicastRemoteObject 
                           implements RemotInformesInterface, Serializable    
{
    
    private static final long serialVersionUID = 1L;
    private GestorDiscConnexio gestorBD;

    /**
     * Constructor de la clase<br>
     * Crea una conexió a la Base de Dades
     * @exception RemoteException
     * @exception EOlympicsException
     */    
    public RemotInformesImpl() throws RemoteException, EOlympicsException {
        super();
        gestorBD = new GestorDiscConnexio();
        gestorBD.obreConnexioBD();
    }

    @Override
    public List<Prova> getProvesTancades() throws RemoteException, EOlympicsException {
            GestorInformes gestorInformes = new GestorInformes(gestorBD);
            return gestorInformes.getProvesTancades();
    }

    @Override
    public ArrayList<HashMap> consultarProves(Integer idUniversitat, Integer idProva, Date dinscripcio_ini, Date dinscripcio_fi, Date drealitacio_ini, Date drealitacio_fi) throws RemoteException, EOlympicsException {
        GestorInformes gestorInformes = new GestorInformes(gestorBD);
        ArrayList<HashMap> resultats = gestorInformes.consultarProves(idUniversitat,idProva,
                dinscripcio_ini,dinscripcio_fi,drealitacio_ini,drealitacio_fi);
        return resultats;
    }

    
}
